#ifndef PBVP_FILEPLUGIN_H
#define PBVP_FILEPLUGIN_H

#include <QtPlugin>
#include <QString>
#include "../plugin.h"
#include "datainterface.h"

namespace PBVP {
	/// 
	class FilePluginInterface : public Plugin
	{
	public:
		virtual ~FilePluginInterface() {}

		virtual QString description() const {
			return QString("Plugin to Access Different File Types");
		}
		virtual DataSetType type() const = 0;
		
		virtual QString extension() const {
			return QString("");
		}

		/// Load a file
		virtual DataInterface* loadFile(const QString &fname) = 0;
		
		/// Save a file
		virtual bool saveFile(DataInterface* pData, const QString &fname) = 0;
	protected:
		
	};
}

Q_DECLARE_INTERFACE(PBVP::FilePluginInterface, "PBVP.FilePluginInterface/1.0")

#endif